Live streaming content includes channels or feeds with scheduled content (e.g., premium movie channels) and live broadcasts (e.g., sporting events, news, etc.). Unlike video-on-demand (VOD) content, live streaming content typically does not have a distinct end point and may continue indefinitely. In addition, VOD content may be buffered in client devices well in advance of the client playhead (i.e., the content fragment being currently rendered by the client). This is typically not the case for live content because of the constraint that the delay between the live playhead (i.e., the latest content fragment available) and the client playhead should be as low as possible, as well as the fact that the live content is being generated in real time and therefore may not yet exist.
There is a tradeoff between minimizing the delay between the live playhead and the client playhead on the one hand, and the quality and/or reliability of the delivered content on the other. The shorter the delay, the more difficult it is for the client to buffer fragments ahead of the client playhead. Under such conditions, a conservative bitrate selection algorithm favoring lower bitrates is appropriate from a reliability perspective as the client cannot rely on buffer fullness to maintain the stream in the face of unexpected events (e.g., bandwidth drops, download retries, etc.). However, this may result in video of an unacceptably low quality. On the other hand, the longer the delay between the live and client playheads, the more able the client is to reliably download higher quality fragments. However, the longer the delay, the more out of sync the viewer's experience is from the live experience she expects.